﻿using System;
using Reflector.CodeModel;

namespace CallGraphExtractor.CecilAdapter
{
    class GenericParameter : IGenericParameter
    {
        #region Lifecycle

        public GenericParameter(Mono.Cecil.GenericParameter genericParameter)
        {
            this.Adaptee = genericParameter;
        }

        #endregion Lifecycle

        #region Properties

        public Mono.Cecil.GenericParameter Adaptee { get; private set; }

        #endregion Properties

        #region IGenericParameter Members

        public ITypeCollection Constraints
        {
            get { throw new NotImplementedException(); }
        }

        public string Name
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public GenericParameterVariance Variance
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion

        #region IGenericArgument Members

        public IGenericArgumentProvider Owner
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public int Position
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public IType Resolve()
        {
            return this;
        }

        #endregion

        #region IComparable Members

        public int CompareTo(object obj)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ICustomAttributeProvider Members

        public ICustomAttributeCollection Attributes
        {
            get { throw new NotImplementedException(); }
        }

        #endregion
    }
}
